1. Field of the Invention
The present invention relates to storage area networks, and more particularly, to an apparatus and method for an improved technique for implementing in order delivery of traffic across a storage area network.
2. Background of the Invention
With the increasing popularity of Internet commerce and network centric computing, businesses and other organizations are becoming more and more reliant on information. To handle all of this data, storage area networks or SANs have become very popular. A SAN typically includes a number of storage devices, a plurality of Hosts, and a number of Switches arranged in a Switching Fabric that connects the storage devices and the Hosts.
Most SANs rely on the Fibre Channel protocol for communication within the Fabric. For a detailed explanation of the Fibre Channel protocol and Fibre Channel Switching Fabrics and Services, see the following publications: ANSI INCITS 373-2003, Fibre Channel Framing and Signaling Interface (FC-FS); ANSI INCITS 384-2004, Fibre Channel-Switch Fabric-3 (FC-SW-3); and ANSI INCITS 387-2004, Fibre Channel-Generic Services-4 (FC-GS-4); all of which are incorporated herein by reference for all purposes.
In conventional Fibre Channel, each device (e.g., hosts, storage devices and switches) is identified by an unique eight (8) byte wide Node_Name assigned by the manufacturer. When the Fibre Channel devices are interconnected to form a SAN, the Node_Name (along with other parameters) is used to identify each device. Fibre Channel frames are used for communication among the devices in the SAN. The Node_Name, however, is not used by the frames. Instead the Fibre Channel Port of each end device (hosts and storage devices) is addressed via a three (3) byte Fibre Channel address (or FCID), allocated dynamically to the end devices by the fabric. A unique FCID is assigned to a host device or disk device when the device logs in to the fabric. Additionally, each switch in the fabric is assigned a specific domain by the domain manager when the switch is connected to the fabric. All the devices connected to a given switch will have the DomainID of the switch as the first byte of their FCIDs. This “Domain” value is used for routing the frames within the fabric. Each FC frame header will include an SID field representing the source FCID, and a DID field representing the destination FCID.
Fibre Channel based SANs are often organized into zones. Within each zone, Hosts can see and access only storage devices or other Hosts belonging to that zone. This allows the coexistence on the same SAN of different computing environments. Additionally, zoning allows the partition of a Fibre Channel fabric into smaller fabrics to allow the implementation of features such as security and restrictions. Devices belonging to a single functional group are typically placed under the same zone. For example, devices involved in online transactions can be placed in one zone while devices associated with backing up user data can be placed in another zone. The SAN administrator may define in a SAN multiple zones, as required or dictated by the computing and storage resources connected to it. The Switching Fabric allows communications only between devices belonging to the same zone, preventing a device of one zone from seeing or accessing a device of another zone.
Recently, new technology referred to as Virtual SANs or VSANs have been implemented in order to enhance fabric scalability and availability, and further augment the security services offered by fabric zoning. VSANs combined with hardware-enforced zoning provide the SAN designer with new tools to highly optimize SAN deployments in terms of scalability, availability, security and management. VSANs provide the ability to create completely isolated fabric topologies, each with its own set of fabric services, on top of a scalable common physical infrastructure. As each VSAN possesses its own zoning service, zoning is then configured within each VSAN independently and has no affect on any other VSAN and zoning service.
FIG. 1 shows a block diagram of a portion 100 of a Fibre Channel network. As illustrated in the example of FIG. 1, the Fibre Channel network includes a plurality of hosts (H1, H2), a plurality of discs or storage devices (D1, D2), and a VSAN fabric 104 which includes a plurality of switches (SW1-SW5) such as, for example, switches from the MDS line of storage switches available from Cisco Systems of San Jose, Calif. A flow between any two Fibre Channel (FC) devices may be characterized by the respective identities (e.g. FCIDs) of each device. For example, the flow H1-D1 may correspond to an exchange of frames between host H1 and storage device D1. Typically, in FC networks, a given flow is expressed in terms of the SID and DID parameters (e.g., SID-DID) associated with the frames of that flow.
Typically, each flow in the Fibre Channel network includes at least one exchange of one or more sequences of frames transmitted from one port to another. Each Fibre Channel sequence may represent a series of one or more related frames transmitted unidirectionally from one port to another. A Fibre Channel exchange represents a series or one or more nonconcurrent sequences between two ports. The sequences may be in either direction. As another perspective, one can use the following analogy to characterize the hierarchy of frames, sequences, exchanges, and flows in a Fibre Channel network: frames correspond to words, sequences correspond to sentences, and exchanges correspond to conversations, and a flow may be characterized as any communication between a given source device and a given destination device. A Fibre Channel (FC) device may be configured or designed to “speak” more than one sentence and hold more than one “conversation” at a time with another FC device.
Generally, in Fibre Channel networks, it is possible for frames generated by a particular source to reach their destination out of order. This may occur, for example, due to events such as load balancing, route changes, QoS policy changes, etc. However, some Fibre Channel protocols, applications and/or devices (such as, for example, tape backup devices, Fibre Channel write acceleration protocols, etc.) are sensitive to the order in which frames are delivered, and cannot handle out-of-order frame delivery. Accordingly, most conventional SANs or Fibre Channel networks are provided with in-order-delivery (IOD) or in-order-delivery (IOD) mechanisms by which data frames are guaranteed to be delivered to a destination in the same order that the frames were sent by the source/originator. For example, many Cisco MDS switches are configured or designed to support IOD across one or more VSANs. However, because conventional IOD mechanisms guarantee in-order frame delivery, frames in the FC fabric which can not be delivered in-order by the FC fabric are typically dropped for brief period of time.
For example, referring to FIG. 1, it is assumed, for purposes of illustration, that disk D1 is sensitive to the order in which frames are received, and that disk D2 is not sensitive to the order in which frames are received. Additionally, it is assumed in this example that disks D1 and D2 are members of the same destination domain associated with switch SW4. During normal operation, a load balancing mechanism implemented in the FC fabric 104 may result in frames sent, for example, from Host H1 to disk D1 traveling via different paths (for example, via either link 105 or link 103) to arrive at their final destination D1. However, in conventional storage area networks, if a route change or route failure is detected on at least one of the paths to a specific destination domain which includes at least one device that is known to be sensitive to frame delivery order, the FC fabric may respond by temporarily dropping all frames to that destination domain in order to reduce the possibility of out-of-order frames being delivered to the order-sensitive device. Thus, for example, if it is detected that link 105 has gone down, the FC fabric 104 may respond by temporarily dropping all frames to the destination domain associated with switch SW4 in order to reduce the possibility of out-of-order frames being delivered to disk D1.
One problem with such a technique, however, is that the temporary dropping of all frames to the identified destination domain may also result in the unnecessary dropping of frames which are traveling to other non-order sensitive devices in the same destination domain. For example, because disk D2 is a member of the same destination domain as that of disc D1, frames which are intended to be delivered to disk D2 will also be temporarily dropped in response to the detection of a route failure (or route change) at link 105, even though disk D2 is not sensitive to the order in which frames are received. Thus it can be seen and that some devices are unnecessarily penalized by conventional mechanisms implemented to provide in-order guarantee of frame delivery.
Additionally, according to conventional techniques, in order to implement an IOD mechanism across the FC fabric of a SAN or VSAN, each switch in the FC fabric needs to be individually configured with the same IOD parameters. Since there are conventionally no standard protocols by which the IOD configurations are able to be automatically propagated across the FC fabric, configuration or reconfiguration of IOD configuration parameters across the FC fabric is typically a burdensome and resource intensive task.
Accordingly, it will be appreciated that there exists a need for improving in-order-delivery of traffic across a storage area network.